#ifndef DHT11_H
#define DHT11_H

#include "GPIO.h"
#include "Switch.h"
#include "oled.h"

#define DHT11 P46

#define calc_high_low_time(level,min,max,desc,val)      count = 0;\
                                                        do\
                                                        {\
                                                            count++;\
                                                            NOP14();\
                                                        } while (DHT11==level);\
                                                        if (count < min || count > max)\
                                                        {\
                                                            printf("%s::%d\r\n",desc,(int)count);\
                                                            return val;\
                                                        }

typedef struct{
    float temp;
    float humi;
}HT;                                                        

void DHT11_Init(void);
//指针获取返回值
//返回0表示正常获取温湿度
//返回-1主机释放总线时间超时
//返回-2表示从机响应低电平时间超时
//返回-3表示从机响应高电平时间超时
//返回-4表示起始位0或1低电平时间超时
//返回-5表示数据位的高电平时间超时
//返回-6表示校验失败
int Get_DHT11_Temperature_Humidity(HT *ht);


#endif